unit DUnitX.NUnit;
interface
uses Classes;

// Service Files
// interface       [Configuration]  Affinity         Contract
// =============================================================================
// IXMLWriter      'UTF-8'          Competitive      Writes lexical XML to file.


type
IXMLWriter_Element = interface;
IXMLWriter_NodeParent = interface
  ['{14A30196-F7B1-4D37-9C7A-BDA9B520CB96}']
    function  Close: IXMLWriter_NodeParent;
    function  AddElement( const URI, LocalName: string): IXMLWriter_Element;
    procedure AddProcessingInstruction( const Target, Content: string);
    procedure AddComment( const Content: string);
    procedure AddTextNode( const Value: string);
  end;

IXMLWriter_Element = interface( IXMLWriter_NodeParent)
  ['{5F7435DA-A642-4B3D-AD6A-4ED8799DDA2D}']
    procedure DeclareNamespace( const PreferredPrefix, URI: string);
    procedure UnDeclareNamespace( const URI: string);
    procedure DeclareDefaultNamespace( const URI: string);
    procedure UnDeclareDefaultNamespace;
    procedure AddAttribute( const Namespace, LocalName, Value: string);
  end;

IXMLWriter_Document = interface( IXMLWriter_NodeParent)
  ['{EF843DAD-8609-46A8-A77D-B78D3D0F4BAE}']
  end;

IXMLWriter = interface
  ['{D51A54E2-30C5-417A-B896-A91BFD267DAE}']
    function OpenDocument( OutStream1: TStream): IXMLWriter_Document;
  end;


TNUnitResult = (rFailure, rSuccess, rIgnored, rError, rInconclusive, rNotRunnable);
INUnit25_TestSuite = interface
  ['{B9400675-292A-4646-A890-2246C2CD4060}']
    function AddNamespaceSuite(
      const Name: string; Executed: boolean; NetResult: TNUnitResult;
      Time: double; Asserts: integer): INUnit25_TestSuite;

    function AddFixtureSuite(
      const Name, Description: string; Executed: boolean; NetResult: TNUnitResult;
      Time: double; Asserts: integer;
      const Reason: string): INUnit25_TestSuite;

    procedure AddTestCase(
      const Name, Description: string; Executed: boolean; CaseResult: TNUnitResult;
      Time: double; Asserts: integer;
      const Reason: string);

    function Close: INUnit25_TestSuite;
  end;

INUnit25_ResultsLog = interface
  ['{3C975A4D-F0A4-4AF2-9DF0-BD6407325F99}']
    function OpenLog( OutStream1: TStream;
      const ProgName: string;
      RunStamp: TDateTime;
      Total, Failed, Errored, NotRun, Ignored, Skipped: integer;
      RunResult: TNUnitResult;
      GrossDuration: double)
      : INUnit25_TestSuite; // units of days.
    procedure CloseLog;
  end;

implementation

end.
